package com.visionet.waveletData.web.service.foundation;

import java.util.List;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.visionet.waveletData.web.common.utils.Validator;
import com.visionet.waveletData.web.entity.business.UserInfo;
import com.visionet.waveletData.web.repository.business.UserInfoDao;
import com.visionet.waveletData.web.service.KeyWord;


//public class CacheService {
//	private static Logger _log = LoggerFactory.getLogger(CacheService.class);
//
//	private static final String CACHE_NAME = "waveletDataCache";
//	public static final String USER_KEY = "user_";
//	public static final String DEPT_KEY = "dept_";
//    public static final String PLUG_KEY = "plug_";
////	public static final String TEAM_MAIL_KEY = "team_mail_";
//	
//	@Autowired
//	private UserInfoDao uidao ;
//
//
//    @Qualifier("waveletDataCache")
//    @Autowired(required = true)
//	private CacheManager ehcacheManager ;
//    private static Cache cache;
//
////  private static URL url = CacheService.class.getResource("/cache/applicationContext-ehcache.xml");
////	private static Cache cache = CacheManager.create(url).getCache(CACHE_NAME);
//
//    public void initData(){
//
//        cache = ehcacheManager.getCache(CACHE_NAME);
//		List<UserInfo> userList = (List<UserInfo>)uidao.findAll();
//		UserInfo all = new UserInfo();
//		all.setId(0L);
//		all.setUserName(KeyWord.STREAM_SEND_ALL);
//		put(USER_KEY+"0", all);
//		
//		for(UserInfo user:userList){
//			put(USER_KEY+user.getId(), user);
//		}
////
////		
//		_log.info("---initUserData:"+userList.size());
//	}
//	
//	
//	
//	public static Object get(String key) {
//		Element element = cache.get(key);
//		return element.getObjectValue();
//	}
//    public static void remove(String key) {
//        cache.remove(key);
//    }
//
//	public static synchronized void put(String key, Object value) {
//		Element element = new Element(key, value);
//		cache.put(element);
//	}
//	
//
//
//	
//	
//	public static UserInfo GetUser(Long id) {
//		if(id == null) return null;
//		
//		try {
//			return (UserInfo)get(USER_KEY+id);
//		} catch (Exception e) {
//			_log.error("CacheService GetUser error:"+e.toString() + " id:"+id);
//			return null;
//		}
//		
//	}
//	
//	public static String GetTeamMail(Long id) {
//		if(id == null) return null;
//		
//		try {
////			return (String)get(TEAM_MAIL_KEY+id);
//			return null;
//		} catch (Exception e) {
//			_log.error("CacheService GetTeamMail error:"+e.toString());
//			return null;
//		}
//		
//	}
//
//    public static String GetPlugUrl(String code){
//        if(Validator.isNull(code)) return null;
//        try {
//            return (String)get(PLUG_KEY+code);
//        } catch (Exception e) {
//            _log.debug("CacheService GetPlugUrl error:"+e.toString()+ " code:"+code);
//            return null;
//        }
//    }
//
//}
